//#include "01.h"


typedef struct nod
{
	int info;
	nod *left,*right;
	bool isroot;
	int mind,maxd,d;
	bool preferatstg,preferatdreapta;
};

typedef struct lista
{
	nod * radacina;
	lista *next;
	int nrelem;
};

#ifndef HEADER_H_ 
#define HEADER_H_ 

nod* creare_reftree(int,int,int);

void ref_tree();

void tangotree();

void freememnod(nod *);

void tangosearch(int);

nod * copyarbore(nod *);

void adaugarelista();

nod * crearearbore();

nod * crearearbaux(int left, int right);

void createtango(lista *elem);

nod * cautareparinte(nod * rad,int info,bool *ok);

void parcurgereref(nod * root);

void iroot_d(nod *root);

void freetangotree();

void copiere();

void freelista(lista *el);

void aranjare_lista(lista *root1,lista *root2);

//Declaratii de functii
#endif